package org.reliablesource.prism.ui.preferences;

/**
 *
 *  Copyright (c) 2006, Reliable Source, Inc. All Rights Reserved
 *
 *	Created on: Mar 11, 2006
 *	@author Dennis Park <a href="mailto:dennis.park@gmail.com">dennis.park@gmail.com</a>
 *
 */

import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.reliablesource.prism.ui.plugin.PrismPlugin;
import org.reliablesource.prism.ui.util.PrismUIConstants;

/**
 * This class represents a preference page that is contributed to the
 * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
 * we can use the field support built into JFace that allows us to create a page
 * that is small and knows how to save, restore and apply itself.
 * <p>
 * This page is used to modify preferences only. They are stored in the
 * preference store that belongs to the main plug-in class. That way,
 * preferences can be accessed directly via the preference store.
 */

public class PrismPreferencePage extends FieldEditorPreferencePage implements
		IWorkbenchPreferencePage {

	public PrismPreferencePage() {
		super(GRID);
		setPreferenceStore(PrismPlugin.getDefault().getPreferenceStore());
		setDescription("Prism Plugin Preferences");
	}

	/**
	 * Creates the field editors. Field editors are abstractions of the common
	 * GUI blocks needed to manipulate various types of preferences. Each field
	 * editor knows how to save and restore itself.
	 */
	public void createFieldEditors() {
		addField(new DirectoryFieldEditor(PrismUIConstants.P_PATH,
				"&Directory location to store screen captures:",
				getFieldEditorParent()));

		addField(new RadioGroupFieldEditor(PrismUIConstants.P_CAPTURE_TRIGGER,
				"Select a screen capture trigger", 1, new String[][] {
						{ "&Middle Button", Integer.toString(PrismUIConstants.MOUSE_MIDDLE) },
						{ "&Right Button",  Integer.toString(PrismUIConstants.MOUSE_RIGHT) } },
				getFieldEditorParent()));
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
	 */
	public void init(IWorkbench workbench) {
	}

}